What-you-see-is-what-you-get (WYSIWYG) tools may be used by a designer to design two-dimensional visual layouts in a variety of domains including, but not limited to, user interfaces, diagramming, and reports. The productivity of the designer may be affected by usability factors of a WYSIWYG tool.
An object component of a visual layout is an object which can exist independently. Examples of object components may include, but not be limited to, tables, bar charts, and text boxes. Existing WYSIWYG tools may automatically align or “snap” edges of object components with edges of other object components. Thus, for example, when a designer repositions or resizes a text box with respect to a table and a left edge of the textbox is within a predetermined distance of a left edge of the table, the left edge of the textbox may automatically align or “snap” to the left edge of the table.
An object child component is a component nested within an object component. Object child components are independent of the object components in which they are nested. For example, an object child component may have meaning outside of a context of an object component in which it is nested. An example of an object child component may include, but not be limited to, a textbox included within an object component, such as, for example, a rectangle. When a designer repositions or resizes an object child component and an edge of the object child component is within a predetermined distance of an edge of an object component or a second object child component, the edge of the object child component may automatically align or “snap” to the edge of the object component or the second object child component.
An object subcomponent is a dependent object included within an object component. An object subcomponent may be meaningless outside of a context of an object component. An object component may include one or more object subcomponents. Examples of object subcomponents may include, but are not limited to, rows or columns within a table, bars within a bar chart, and legends within a chart or graph. When a designer repositions or resizes an item, such as, for example, an object component or an object subcomponent, if the designer wishes to align an edge of the item with an edge of an object subcomponent, the designer may manually align the edges. However, manual alignment may be awkward or impossible in some situations.